<?php
defined('DCS_ROOT') or exit(header("HTTP/1.1 430 Not Forbidden"));




//****************把微博相关引用引用放到最上面××××××××××××××××××××××××××××××××××××××××××
			session_start();  //任何时候，页面使用session，开头必须有此句声明。
			require_once(APP_PATH."config.php" );
			require_once(APP_PATH."weibooauth.php" );
//****************把微博相关引用引用放到最上面×××××××××××××××××××××××××××××××××××××××
			
			

class comments {

	function __construct (){
		$this->url = getUrl();		
		$action = $this->url['params']['1'];
		//取 Action ，进入下面相应的 function 处理
		if($action == 'new'){
			//进入 function addComment() 操作，以下相同
			$this->addComment();
		}elseif($action == 'edit'){
			$this->editComment();
		}elseif($action == 'vote'){
			$this->voteAction();
			
			
			
		//***********新增： 评论和转发函数×××××××××××××××××××××	
		}elseif($action == 'rt'){
			$this->rt();
		}elseif($action == 're'){
			$this->re();	
		//***********新增： 评论和转发函数×××××××××××××××××××××	
		
		
			
		}elseif(is_numeric($action)){
			$this->showComment();
		}else{
			$this->defaultAction();
		}
		exit();
	}
	
	//未指定操作
	function defaultAction(){
		exit('page error');
	}
	
	
	
	//***********新增： 评论和转发函数×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
	function rt(){  //转发微博
			//初始化数据库和数据库Model 
		require_once(APP_PATH."model/accounts/movie.php" );
		$db  = getDB();
		$data = new MovieModel($db);
		//echo $_SESSION['uid']; exit;
		if(empty($_SESSION['uid'])) {echo ('2'); exit;}  //直接检测有没有登录，若没有就提示信息。 
		//微博id
		 $weibo_id = $this->url['params']['2'];
		//如果微博id不是数字，就退出，显示404错误
		!is_numeric($weibo_id) && pageError();

		if(isPost())
		{
			//取评论内容
			$rt = $_POST[comment];
			$mid= $_POST[mid];
		}

		    //同步微博部分
			$c = new WeiboClient( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret']  );
			$url = "http://".$_SERVER['SERVER_NAME']."/movie/".$mid;
			$weibo=$rt;
			if (strlen($weibo) < 375)
			{	$weibo=$weibo." ".$url." | @影艺圈";}
			else if (strlen($weibo) < 405)
			{	$weibo=$weibo." | @影艺圈";}
			//$weibo= cut_str($content, 123);   //这函数的中文字符数量，新浪极限是138, 超链接占9， 因此这里截取 128
			//$weibo = "-".$url." | @影艺圈";	 //光路径+@影艺圈的内容就差别15个中文字符，" | @影艺圈"是5个中文字符
			//echo "长度：".strlen($weibo)."<br />"; 
			$rr = $c->repost( $weibo_id, $weibo );
			$data->updateRT($weibo_id);    //刷新表中rt数据
			//var_dump($rr);
			//exit;
			
			if(!empty($rr))  
				{
				echo ('1');  //成功转发
				}
			else	
			    {echo ('0'); }  //没登录
				   
			   
	}
	
	
	function re(){	 //评论微博
				//初始化数据库和数据库Model 
		require_once(APP_PATH."model/accounts/movie.php" );
		$db  = getDB();
		$data = new MovieModel($db);
		///取微博id
		if(empty($_SESSION['uid'])) {echo ('2'); exit;}  //直接检测有没有登录，若没有就提示信息。 
		$weibo_id = $this->url['params']['2'];
		//如果微博id不为数字，显示出错
		!is_numeric($weibo_id) && pageError();
	 if(isPost())
		{
			
			$re = $_POST[comment];  //取评论内容
			$mid = $_POST[mid];
		} 
			$c = new WeiboClient( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret']  );
			$url = "http://".$_SERVER['SERVER_NAME']."/movie/".$mid;
			$weibo=$re;
			if (strlen($weibo) < 375)
			{	$weibo=$weibo." ".$url." | @影艺圈";}
			else if (strlen($weibo) < 405)
			{	$weibo=$weibo." | @影艺圈";}
			//$weibo= cut_str($content, 123);   //这函数的中文字符数量，新浪极限是138, 超链接占9， 因此这里截取 128
			//$weibo = "-".$url." | @影艺圈";	 //光路径+@影艺圈的内容就差别15个中文字符，" | @影艺圈"是5个中文字符
			//echo "长度：".strlen($weibo)."<br />"; 
			$rr = $c->send_comment( $weibo_id, $weibo);
			$data->updateRE($weibo_id);    //刷新表中rt数据
			//var_dump($rr);
			//exit;
			
			if(!empty($rr))   
				{
				echo ('1');  //成功转发
				}
			else	
			    {echo ('0'); }  
		
         
	}	 
	
	
	
	  
//***********新增： 评论和转发函数×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
	//增加短评
	function addComment(){
	echo "同步到新浪微博...";
	//exit;

		//初始化数据库和数据库Model 
		require_once(APP_PATH."model/accounts/movie.php" );
		$db  = getDB();
		$data = new MovieModel($db);
		
		//取电影id
		$id = $this->url['params']['2'];
		//如果电影id不是数字，就退出，显示404错误
		!is_numeric($id) && pageError();
		//取电影数据
		$movie = $data->getMovie($id);
		//如果没有这个电影，也是退出，显示404错误
		empty($movie) && pageError();
		//取用户信息
		$user = getMember();
		if(empty($user)){
			//没有登录，转向登录页面
			message('','/login');
		}

		$uid = $user['uid'];
		$is_comment = $data->isPostComment($id,$uid);

		//如果提交请求
		if(isPost()){
			//取想看还是看过
			$watch = intval(trim($_POST['watch_action']));
			if($watch == '1'){
				//如果为看过，那么取评分
				$rating = trim($_POST['rating']);
				$rating = $rating * 2;
				//todo
				if(!is_numeric($rating) OR $rating < 1 ){
					message('分数不对',2);
				}

				}else{
				//想看，评分为空
				$rating = 0;
				}
			if(!empty($_POST['content'])){
				//过滤短评内容
				$content = txt2Html($_POST['content']);
				


	
			}
			
			if(!is_numeric($watch) || $watch > 3){
				message('请选择看过或想看。',2);
			}

			global $timestamp,$onlineip;
			if($is_comment){
				$editComment = $data->editComment($id,$uid,$type,$rating,$content);
				

			//×××××××××××××××××××新增： 修改短评并同步微博×××××××××××××××××××××××××××
			$c = new WeiboClient( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret']  );
			$url = "http://".$_SERVER['SERVER_NAME']."/movie/".$id;
			$weibo=$content;
			if (strlen($weibo) < 375)
			{	$weibo=$weibo." ".$url." | @影艺圈";}
			else if (strlen($weibo) < 405)
			{	$weibo=$weibo." | @影艺圈";}
			//$weibo= cut_str($content, 123);   //这函数的中文字符数量，新浪极限是138, 超链接占9， 因此这里截取 128
			//$weibo = "-".$url." | @影艺圈";	 //光路径+@影艺圈的内容就差别15个中文字符，" | @影艺圈"是5个中文字符
			//echo "长度：".strlen($weibo)."<br />"; 
			$rr = $c->update( $weibo ); //同步到微博
			//var_dump($rr);
			//exit;
			//×××××××××××××××××××新增： 修改短评并同步微博××××××××××××××××××××××××
			

				if(!empty($comment_id)){
					//todo
					message('');
				}else{
					message('发表短评失败，请重新发表。',2);
				}
			}else{
				$comment_id = $data->addComment($id,$uid,$rating,$watch,$content,$onlineip,$timestamp);


//×××××××××增加发到微博××××××××××××××××××××××××××××××××××××××××××××××××××××××
			$c = new WeiboClient( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret']  );  //这个$变量要先定义，后面才能使用
			
			//同步微博部分
			$url = "http://".$_SERVER['SERVER_NAME']."/movie/".$id;
			$weibo=$content;
			if (strlen($weibo) < 375)
			{	$weibo=$weibo." ".$url." | @影艺圈";}
			else if (strlen($weibo) < 405)
			{	$weibo=$weibo." | @影艺圈";}
			//$weibo= cut_str($content, 123);   //这函数的中文字符数量，新浪极限是138, 超链接占9， 因此这里截取 128
			//$weibo = "-".$url." | @影艺圈";	 //光路径+@影艺圈的内容就差别15个中文字符，" | @影艺圈"是5个中文字符
			//echo "长度：".strlen($weibo)."<br />"; 
			$rr = $c->update( $weibo ); //同步到微博
			//var_dump($rr);
			//exit;
			
			
			$rr = $c->user_timeline(); //取用户自己发到最新微博,把微博id等相关信息刷新到本地数据库
			if( is_array( $rr ) ) 
			{
			foreach( $rr as $item )
				{
				// if {}     日后做：这里考虑做一个判断：接口取的该条微博内容，与数据库的内容相似度是否大于70%，这样保证id没有匹配错。
				$weibo_uid = $item[user][id];
				$user_name = $item[user][name];
				$user_url = "http://weibo.com/".$item[user][id];
				$profile_image_url = $item[user][profile_image_url];		//用户头像	
				$thumbnail_pic =  $item[thumbnail_pic];		//微博图片，小
				$bmiddle_pic =   $item[bmiddle_pic];			//微博图片，中
				$original_pic =  $item[original_pic]; 			//微博图片，原始

				$data->updateWeibo($item['id'],$weibo_uid, $user_name, $user_url, $profile_image_url,$thumbnail_pic,$bmiddle_pic,$original_pic,cookieget('uid'));  //刚才同步的微博的相关信息取到到本地。
				
				
				break;  //就取第一条微博
				}
			}
//×××××××××增加发到微博××××××××××××××××××××××××××××××××××××××××××××××××××××××××
			
			

				
				
				
				if(!empty($comment_id)){
					$data->updateMovieComment($id,$rating,$watch);
					message('');
				}else{
					message('发表短评失败，请重新发表。',2);
				}
			}
		}else{
			exit();
		}	
	}

	function editComment(){
		require_once(APP_PATH."model/accounts/movie.php" );
		$db  = getDB();
		$data = new MovieModel($db);
		$id = $this->url['params']['2'];
		!is_numeric($id) && pageError();

		$comment = $data->getComment($id);

		$mid = $comment['mid'];

		$user = getMember();
		if(empty($user)){
			message('','/login');
		}

		if(isPost()){
			$type = intval(trim($_POST['watch_action']));
			if($type == '1'){
				$rating = trim($_POST['rating']);
				$rating = $rating * 2;
			}else{
				$rating = 0;
			}
			$content = txt2Html($_POST['content']);
			$uid = $user['uid'];
			//todo
			if(!is_numeric($rating)){
				message('分数不对。。',2);
			}

			if(!is_numeric($type) || $type > 3){
				message('请选择看过或想看。',2);
			}
			
			if (!checkLen($content,6,500)){
				message('您输入的内容长度应在6-500字之间',2);
			}
			
//**********************新增：对内容进行连接处理××××××××××××××××××××××××××××××××××××××××××××××××××				
				$content2 = $content; // 新增，保留用于发布到微博， 原content要进行<a>链接处理
                 $content = autolink($content);  // 函数在funs文件，通过正则表达式实现http、@、##的自动连接
//**********************新增：对内容进行连接处理××××××××××××××××××××××××××××××××××××××××××××××××

            global $timestamp;
			$comment_id = $data->editComment($id,$uid,$type,$rating,$content,$timestamp);  //增加刷新时间
			
			

			//×××××××××××××××××××新增： 修改短评并同步微博×××××××××××××××××××××××××××
			$c = new WeiboClient( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret']  );
			$url = "http://".$_SERVER['SERVER_NAME']."/movie/".$id;
			$weibo=$content2;
			if (strlen($weibo) < 375)
			{	$weibo=$weibo." ".$url." | @影艺圈";}
			else if (strlen($weibo) < 405)
			{	$weibo=$weibo." | @影艺圈";}
			//$weibo= cut_str($content, 123);   //这函数的中文字符数量，新浪极限是138, 超链接占9， 因此这里截取 128
			//$weibo = "-".$url." | @影艺圈";	 //光路径+@影艺圈的内容就差别15个中文字符，" | @影艺圈"是5个中文字符
			//echo "长度：".strlen($weibo)."<br />"; 
			//echo $weibo; exit;
			$rr = $c->update( $weibo ); //同步到微博
			//var_dump($rr);
			//exit;
			//×××××××××××××××××××新增： 修改短评并同步微博××××××××××××××××××××××××××			
			
			
			
			if(!empty($comment_id)){
				message('');
			}else{
				message('发表短评失败，请重新发表。',2);
			}
		}	
	}

	function voteAction(){
		require_once(APP_PATH."model/accounts/movie.php" );
		$db  = getDB();
		$data = new MovieModel($db);
		$id = $this->url['params']['2'];
		!is_numeric($id) && exit('没有此短评s');
		$review = $data->getComment($id);		
		empty($review) && exit('没有此短评2');
		$user = getMember();
		empty($user) && exit('nologin');
		
		$isVote = cookieget('comment_'.$id);
		if(!empty($isVote)){
			exit('您已支持过此短评。');
		}
		$comment_id = $data->updateCommentSupport($id);
		if(!empty($comment_id)){
			cookieset('comment_'.$id,'1');
			exit('ok');
		}else{
			exit('支持此短评失败');
		}
		
	}
}

?>
